![]() |
![]() |
![]() | |
![]() ![]() ![]() ![]()
╤εß√≥Φ |
╤εß√≥Φ ε≥ ∞√°Φ┬ ²≥ε∞ ≡ατΣσδσ ∞√ ≡α±±∞ε≥≡Φ∞ ±εß√≥Φ , Ωε≥ε≡√σ ΓετφΦΩα■≥ Γ ≡στ≤δⁿ≥α≥σ ≥επε, ≈≥ε ∩εδⁿτεΓα≥σδⁿ Γ√∩εδφ σ≥ Γ εΩφσ α∩δσ≥α ε∩σ≡α÷ΦΦ ± ∞√°ⁿ■. ▌≥ε ≥αΩΦσ ε∩σ≡α÷ΦΦ, ΩαΩ φαµα≥Φσ Φ ε≥∩≤±ΩαφΦσ ΩδαΓΦ°Φ ∞√°Φ, ∩σ≡σ∞σ∙σφΦσ Ω≤≡±ε≡α ∞√°Φ Γ εΩφσ α∩δσ≥α ± φαµα≥εΘ ΦδΦ ε≥∩≤∙σφφεΘ ΩδαΓΦ°σΘ, ∩σ≡σ∞σ∙σφΦσ Ω≤≡±ε≡α ∞√°Φ Γ εΩφε α∩δσ≥α Φ ≤ΣαδσφΦσ ²≥επε Ω≤≡±ε≡α Φτ εΩφα α∩δσ≥α. ┬±σ ∩σ≡σ≈Φ±δσφφ√σ φΦµσ ∞σ≥εΣ√ Σεδµφ√ Γσ≡φ≤≥ⁿ τφα≈σφΦσ true, σ±δΦ εß≡αßε≥Ωα ±εß√≥Φ Γ√∩εδφσφα ≤±∩σ°φε Φ ΣαδⁿφσΘ°α εß≡αßε≥Ωα φσ ≥≡σß≤σ≥± . ┼±δΦ µσ ∞σ≥εΣ√ Γσ≡φ≤≥ τφα≈σφΦσ fasle, ±εß√≥Φσ ß≤Σσ≥ εß≡αßε≥αφε ∞σ≥εΣε∞ Φτ ßατεΓεπε Ωδα±±α, ≥ε σ±≥ⁿ Σδ φσπε ß≤Σσ≥ Γ√∩εδφσφα εß≡αßε≥Ωα, ∩≡Φφ ≥α ∩ε ≤∞εδ≈αφΦ■. ╧≡επ≡α∞∞Φ±≥√, ±ετΣαΓαΓ°Φσ ∩≡ΦδεµσφΦ Σδ ε∩σ≡α÷ΦεφφεΘ ±Φ±≥σ∞√ Microsoft Windows, ∞επ≤≥ φαΘ≥Φ τΣσ±ⁿ αφαδεπΦ■ ± Γ√τεΓε∞ ⌠≤φΩ÷ΦΦ DefWindowProc, Ωε≥ε≡α Γ√∩εδφ σ≥ εß≡αßε≥Ω≤ ±εεß∙σφΦΘ, ∩≡Φφ ≥≤■ ∩ε ≤∞εδ≈αφΦ■. ═αµα≥Φσ ΩδαΓΦ°Φ ∞√°Φ╧σ≡σε∩≡σΣσδΦΓ ∞σ≥εΣ mouseDown, Γ√ ±∞εµσ≥σ ε≥±δσµΦΓα≥ⁿ φαµα≥Φ ΩδαΓΦ°Φ ∞√°Φ. ╧≡ε≥ε≥Φ∩ ²≥επε ∞σ≥εΣα ∩≡ΦΓσΣσφ φΦµσ: public boolean mouseDown(Event evt, int x, int y); ╫σ≡στ ∩α≡α∞σ≥≡ evt ∞σ≥εΣ≤ ∩σ≡σΣασ≥± ±±√δΩα φα εß·σΩ≥ Event, ± ∩ε∞ε∙ⁿ■ Ωε≥ε≡εΘ ∞σ≥εΣ ∞εµσ≥ ∩εδ≤≈Φ≥ⁿ ∩εδφ≤■ Φφ⌠ε≡∞α÷Φ■ ε ±εß√≥ΦΦ. └φαδΦτΦ≡≤ ±εΣσ≡µΦ∞εσ ∩α≡α∞σ≥≡εΓ x Φ y, ∩≡ΦδεµσφΦσ ∞εµσ≥ ε∩≡σΣσδΦ≥ⁿ Ωεε≡ΣΦφα≥√ Ω≤≡±ε≡α φα ∞ε∞σφ≥ ΓετφΦΩφεΓσφΦ ±εß√≥Φ . ╟α∞σ≥Φ∞, ≈≥ε Σδ ε≥±δσµΦΓαφΦ ΣΓεΘφεπε ∙σδ≈Ωα ∞√°Φ φσ ∩≡σΣ≤±∞ε≥≡σφε φΦΩαΩεπε ε≥Σσδⁿφεπε ∞σ≥εΣα. ╬ΣφαΩε αφαδΦτΦ≡≤ ±εΣσ≡µΦ∞εσ ∩εδ clickCount ∩σ≡σ∞σφφεΘ evt, Γ√ ∞εµσ≥σ ε∩≡σΣσδΦ≥ⁿ Ω≡α≥φε±≥ⁿ ∙σδ≈Ωα ∞√°Φ: if(evt.clickCount > 1) // ─ΓεΘφεΘ ∙σδ≈εΩ showStatus("Mouse Double Click"); else // ╬ΣΦφα≡φ√Θ ∙σδ≈εΩ showStatus("Mouse Down"); ╬≥∩≤±ΩαφΦσ ΩδαΓΦ°Φ ∞√°Φ╧≡Φ ε≥∩≤±ΩαφΦΦ ΩδαΓΦ°Φ ∞√°Φ ≤∩≡αΓδσφΦσ ∩εδ≤≈ασ≥ ∞σ≥εΣ mouseUp: public boolean mouseUp(Event evt, int x, int y); └φαδΦτΦ≡≤ ∩α≡α∞σ≥≡√ x Φ y, Γ√ ∞εµσ≥σ ε∩≡σΣσδΦ≥ⁿ Ωεε≡ΣΦφα≥√ ≥ε≈ΩΦ, Γ Ωε≥ε≡εΘ ∩εδⁿτεΓα≥σδⁿ ε≥∩≤±≥Φδ ΩδαΓΦ°≤ ∞√°Φ. ╧σ≡σ∞σ∙σφΦσ Ω≤≡±ε≡α ∞√°Φ╩επΣα ∩εδⁿτεΓα≥σδⁿ ∩σ≡σ∞σ∙ασ≥ Ω≤≡±ε≡ ∞√°Φ φαΣ εΩφε∞ α∩δσ≥α, Γ ∩≡ε÷σ±±σ ∩σ≡σ∞σ∙σφΦ ∩≡εΦ±⌡εΣΦ≥ Γ√τεΓ ∞σ≥εΣα mouseMove: public boolean mouseMove(Event evt, int x, int y); ╫σ≡στ ∩σ≡σ∞σφφ√σ x Φ y ∩σ≡σΣα■≥± ≥σΩ≤∙Φσ Ωεε≡ΣΦφα≥√ Ω≤≡±ε≡α ∞√°Φ. ┬√∩εδφσφΦσ ε∩σ≡α÷ΦΦ Drag and Drop╬∩σ≡α÷Φ Drag and Drop Γ√∩εδφ σ≥± ±δσΣ≤■∙Φ∞ εß≡ατε∞: ∩εδⁿτεΓα≥σδⁿ φαµΦ∞ασ≥ ΩδαΓΦ°≤ ∞√°Φ Φ, φσ ε≥∩≤±Ωα σσ, φα≈Φφασ≥ ∩σ≡σ∞σ∙α≥ⁿ Ω≤≡±ε≡ ∞√°Φ. ╧≡Φ ²≥ε∞ ∩≡εΦ±⌡εΣΦ≥ Γ√τεΓ ∞σ≥εΣα mouseDrag: public boolean mouseDrag(Event evt, int x, int y); ╫σ≡στ ∩σ≡σ∞σφφ√σ x Φ y ∩σ≡σΣα■≥± ≥σΩ≤∙Φσ Ωεε≡ΣΦφα≥√ Ω≤≡±ε≡α ∞√°Φ. ╠σ≥εΣ mouseDrag Γ√τ√Γασ≥± Σαµσ Γ ≥ε∞ ±δ≤≈ασ, σ±δΦ Γ ∩≡ε÷σ±±σ ∩σ≡σ∞σ∙σφΦ Ω≤≡±ε≡ Γ√°σδ τα ∩≡σΣσδ√ εΩφα α∩δσ≥α. ┬⌡εΣ Ω≤≡±ε≡α ∞√°Φ Γ εßδα±≥ⁿ εΩφα α∩δσ≥α╠σ≥εΣ mouseEnter ∩εδ≤≈ασ≥ ≤∩≡αΓδσφΦσ, ΩεπΣα Ω≤≡±ε≡ ∞√°Φ Γ ∩≡ε÷σ±±σ ∩σ≡σ∞σ∙σφΦ ∩ε ²Ω≡αφ≤ ∩ε∩αΣασ≥ Γ εßδα±≥ⁿ εΩφα α∩δσ≥α: public boolean mouseEnter(Event evt, int x, int y); ┬√ ∞εµσ≥σ Φ±∩εδⁿτεΓα≥ⁿ ²≥ε≥ ∞σ≥εΣ Σδ αΩ≥ΦΓΦτα÷ΦΦ α∩δσ≥α, φα Ωε≥ε≡√Θ ≤Ωατ√Γασ≥ Ω≤≡±ε≡ ∞√°Φ. ┬√⌡εΣ Ω≤≡±ε≡α ∞√°Φ Φτ εßδα±≥Φ εΩφα α∩δσ≥α╠σ≥εΣ mouseExit Γ√τ√Γασ≥± ∩≡Φ ∩εΩΦΣαφΦΦ Ω≤≡ε±≡ε∞ εΩφα α∩δσ≥α: public boolean mouseExit(Event evt, int x, int y); ┼±δΦ ∩εδⁿτεΓα≥σδⁿ ≤ß≡αδ Ω≤≡±ε≡ Φτ εΩφα α∩δσ≥α, αΩ≥ΦΓΦτΦ≡εΓαφφεπε ∞σ≥εΣε∞ mouseEnter, ≥ε ∞σ≥εΣ mouseExit ∞εµσ≥ ∩σ≡σΩδ■≈Φ≥ⁿ α∩δσ≥ Γ ∩α±±ΦΓφεσ ±ε±≥ε φΦσ. |